package com.xiaolin.base.common;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @ClassName WaterFlower
 * @Description 水仙花
 * @Detail 打印出所有的"水仙花数"，所谓"水仙花数"是指一个三位数，其各位数字立方和等于该数本身。例如：153是一个"水仙花数"，因为153=1的三次方＋5的三次方＋3的三次方。
 * @Author MyPC
 * @Date 2020/8/9
 * @Version 1.0
 */
public class WaterFlower {
    public static void main(String[] args) {
        List<Integer> list = waterFlower(100,500);
        System.out.println(list);
    }

    /**
     * 指定范围必须是100-999
     * @param start
     * @param end
     * @return
     */
    public static List<Integer> waterFlower(int start, int end){
        List<Integer> list=new ArrayList<>();
        if(start>end){
            return null;
        }
        if(end>999){
            end=999;
        }
        for(int i=start;i<=end;i++){
            //分解出个位数
            int first=i%100%10;
            //分解出十位数
            int second=i%100/10;
            //分解出百位数
            int third=i/100;
            if(i==first*first*first+second*second*second+third*third*third){
                list.add(i);
            }
        }
        return list;
    }

}
